iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0
Software Development

用30天學習C++系列 第 7

Day7 運算式與運算型態的轉換

  • 分享至 

  • xImage
  •  

第七天我們來學習運算式與資料型態的轉換!


運算式與資料型態在定義、宣告時就已經決定其形態,因此不能隨意轉換成其他資料型態,但C++容許使用者有限度的做型態轉換的處理。運算式與資料型態的轉換可分為「隱性資料型態轉換」(implicit type conversion)
及「顯性資料型態轉換」(explicit type conversion)兩種。

1.隱性資料型態轉換

在程式中已經定義好的資料型態之變數,若是想以另一種型態表示時,C++會依據下列的規則自動做資料型態的轉換:
(1) 轉換前的資料型態與轉換後的型態相容
(2) 轉換後的資料型態之表示範圍比轉換前的型態大
https://ithelp.ithome.com.tw/upload/images/20240920/201694108ugRgQ3rWn.jpg

由執行結果可以看到,當兩個數中有一個為浮點數時,其運算的結果會直接轉換為浮點數。當運算式中變數的型態不同時,C++會自動將較少的表示範圍轉換成較大的表示範圍後,再做運算。

2.顯性資料型態轉換

當我們做兩個整數的運算時,其運算的結果也會是整數。舉例來說,做整數除法8/3的運算,其結果為整數2,並不是實際2.66666…,因此在C++中若是想要得到計算的結果是浮點數,就必須將資料做顯性資料型態的轉換,轉換的語法如下:

(欲轉換的資料型態)變數名稱;

以下三種寫法均成立:

(1) (float)a/b         //將整數a強制轉換成浮點數,再與整數b相除
(2) (a/(float)b        //將整數b強制轉換成浮點數,再以整數a除之
(3) (float)a/(float)b  //將整數a與b同時強制轉換成浮點數

今天的內容就先到這邊!謝謝大家~


上一篇
Day6 運算式與運算子
下一篇
Day8程式的結構設計與選擇性敘述
系列文
用30天學習C++30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言